package com.service;


import com.domain.entity.Address;
import com.domain.req.AddAddressReq;
import com.domain.req.AddressUpdateReq;
import com.domain.req.PageReq;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
* @author caishenao
* @description 针对表【address】的数据库操作Service
* @createDate 2023-10-12 20:08:11
*/
public interface AddressService{

    /**
     * 新增收货地址
     *
     * @param addAddressReq 新增收货地址请求
     */
    void addAddress(AddAddressReq addAddressReq);

    /**
     * 分页查询本人的收货地址
     *
     * @param pageReq 分页请求
     * @param address 查询条件
     */
    PageInfo<Address> listAddresses(PageReq pageReq, Address address);

    /**
     * 修改收货地址信息
     *
     * @param addressUpdateReq 收货地址修改请求
     */
    void update(AddressUpdateReq addressUpdateReq);

    /**
     * 根据id删除
     *
     * @param id 收货id
     */
    void delete(Integer id);

    /**
     * 删除本人所有的收货地址
     */
    void deleteAll();

    /**
     * 根据id查询地址
     *
     * @param id 收货地址id
     * @return 收货地址
     */
    Address getById(Integer id);

    /**
     * 查询本人所有收货地址信息
     *
     * @return 本人所有收货信息
     */
    List<Address> list();
}
